package com.zut.service.impl;

import com.zut.dao.TeacherDao;
import com.zut.dao.impl.TeacherDaoImpl;
import com.zut.entity.Teacher;
import com.zut.service.TeacherService;
import com.zut.util.DateUtil;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 教师业务实现类
 */
public class TeacherServiceImpl implements TeacherService {

    //创建一个教师持久层对象
    private TeacherDao td = new TeacherDaoImpl();

    /**
     * 教师登录业务
     * @param tid
     * @param password
     * @return
     */
    @Override
    public Teacher login(String tid, String password) {

        Teacher teacher = td.findTeacherByTidAndPassword(tid,password);

        return teacher;
    }

    /**
     * 查询班级缺少的课程，教师信息
     * @param classId
     * @return
     */
    @Override
    public List<Map<String, Object>> findTeachers(String classId) {
        return td.findTeachersByClassId(classId);
    }


    /**
     * 添加教师
     *  1、生成教师编号
     *      获取教师中的最大编号
     *          如果没有，用年月+1
     *          如果有，获取年月之后的数字 进行加1 ，再拼接上当前年月
     *
     *  2、添加教师信息
     *
     * @param teacher
     */
    @Override
    public void addTeacher(Teacher teacher) {
        //查询最大教师编号
        String maxTid = td.findMaxTid();

        if(maxTid==null){ //在添加第一位教师
            String tid = DateUtil.format("yyyyMM",new Date())+1;
            teacher.setId(tid);

        }else{

            //截取最大编号中年月之后的数字
            String tnum = maxTid.substring(6);
            String tid = DateUtil.format("yyyyMM",new Date())+(Integer.valueOf(tnum)+1);
            teacher.setId(tid);
        }

        //添加教师
        td.addTeacher(teacher);

    }


    /**
     * 查询所有教师
     * @return
     */
    @Override
    public List<Map<String, Object>> findAllTeachers() {
        return td.findAllTeachers();
    }

    /**
     * 根据姓名模糊查询
     * @param tname
     * @return
     */
    @Override
    public List<Map<String, Object>> findTeachersLikeName(String tname) {
        return td.findTeachersLikeName("%"+tname+"%");
    }

    /**
     * 根据课程名称模糊查询
     * @param cname
     * @return
     */
    @Override
    public List<Map<String, Object>> findTeachersByCname(String cname) {
        return td.findTeachersByCname("%"+cname+"%");
    }

    /**
     * 修改教授的课程
     * @param tid
     * @param cid
     */
    @Override
    public void updateTeachCourse(String tid, String cid) {
        td.updateTeachCourse(tid,cid);
    }

    /**
     * 删除教师
     * @param tid
     * @return
     */
    @Override
    public boolean deleteTeacher(String tid) {
        int i = td.deleteByTid(tid);
        return i>0;
    }

    /**
     * 修改教师密码
     * @param id
     * @param newPwd
     */
    @Override
    public void updateTeacherPassword(String id, String newPwd) {

        td.updateTeacherPassword(id,newPwd);

    }

    /**
     * 修改手机号
     * @param id
     * @param newPhoneNum
     */
    @Override
    public void updateTeacherPhoneNum(String id, String newPhoneNum) {
        td.updateTeacherPhoneNum(id,newPhoneNum);
    }
}
